home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 3
/
Gold Medal Software - Volume 3 (Gold Medal) (1994).iso
/
prog
/
mgcomtp0.arj
/
MG_FRC.DOC
< prev
next >
Wrap
Text File
|
1980-01-01
|
37KB
|
1,198 lines
* ───────────────────────────────────────────── * /
/ //
/ / /
/ / /
/ / /
/ / /
/ MGCOMTP v0.9b / /
/ Copyright 1994 by Mark Gauthier. / /
/ / /
/ / /
/ / /
/ / /
┌──────────────────────────────────────────────────────┐ /
│ │ /
│ HS AA CD OH RD SD TR MR │ /
│ │/
└──────────────────────────────────────────────────────┘
R O U T I N E S D ' A C C E S A U X S O R T I E S S E R I E S .
QU'EST-CE QUE MGCOMTP:
────────────────────
C'est un "UNIT" pour Turbo Pascal qui contient des procédures
qui servent à gérer les sorties séries. Il est possible de
gérer jusqu'à huit sorties séries simultanément et ce en
utilisant au choix, un "fossil" de communication comme X00 ou BNU
ou en utilisant un "interrupt" de communication interne.
GÉNÉRALITÉS:
────────────
Ce logiciel est "shareware" de ce fait, je ne garantis
rien sinon qu'il va prendre de l'espace sur votre disque.
Vous êtes entièrement responsable des problèmes qui pourraient,
été trouvé, retourne #0. Si un caractère a été trouvé,
survenir dû à l'utilisation de ce logiciel.
NÉCESSAIRE:
──────────
Turbo Pascal version 5.5, 6, 7 ou Borland Pascal 7.0.
Changer le nom du fichier correspondant TP? pour TPU.
MGCOMTP0.TP5 -> MGCOMTP0.TPU ( TP 5.5 )
MGCOMTP0.TP6 -> MGCOMTP0.TPU ( TP 6.0 )
MGCOMTP0.TP7 -> MGCOMTP0.TPU ( TP 7.0, BP 7.0 Real Mode )
MGCOMTP0.TPP -> ( BP 7.0 Protected mode )
ENREGISTREMENT:
──────────────
Si vous planifiez utiliser ce logiciel, veuillez compléter
la feuille d'information ci-jointe, à la fin de ce document.
COMMENT ME CONTACTER:
────────────────────
Par messages électroniques, sur un système:
Fidonet à l'adresse
1:242/818.5
FrancoMedia à l'adresse
101:160/305.5
ou par la poste.
MgCom / Mark Gauthier
58, Émilien─Frenette, Sainte─Thérèse.
Québec, Canada
J7E 5K3
FUNCTION OPENCOM
──────────────────────────────────────────────────────────────────────────
SYNTAXE: OpenCom(ComPort:Byte; C: Connect_Type): Boolean;
DESCRIPTION:
Ouvre une sortie série, soit avec ou sans "fossil".
Dans le cas ou le type de connections est Ports, alors
réserve les "buffers" de transferts et installe "l'interrupt"
de communication.
PARAMETRES:
ComPort; le numéro de la sortie série (1─8) à ouvrir.
C; le type d'ouverture, soit fossil ou ports.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt;
{ Ouverture avec un fossil de communication de la
sortie série numéros 1 (COM1).
}
End.
Begin
If Not OpenCom(1,Ports) Then Halt;
{ Ouverture avec les ports de la sortie série numéros 1
(COM1).
}
End.
PROCEDURE CLOSECOM
──────────────────────────────────────────────────────────────────────────
SYNTAXE: CloseCom(ComPort:Byte);
DESCRIPTION:
Ferme une sortie série qui a préalablement été ouverte,
grâce à la fonction OpenCom. Si le port a été ouvert
avec Ports, "l'interrupt" de communication va être retiré
et les "buffers" de transfert sont éliminés.
PARAMETRES:
ComPort; le numéro de la sortie série à fermer.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouverture }
CloseCom(1); { Fermeture }
End.
PROCEDURE CLOSEALLCOMS
──────────────────────────────────────────────────────────────────────────
SYNTAXE: CloseAllComs;
DESCRIPTION:
Procédure qui fait exactement la même chose que la
procédure précédente (CloseCom) sauf que celle─ci
ferme la totalité des sorties séries qui ont préalablement
été ouvertes avec la fonction OpenCom.
PARAMETRES:
Auncun;
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
If Not OpenCom(2,Fossil) Then Halt; { Ouvre le COM2 }
CloseAllComs; { Ferme tout. }
End.
PROCEDURE HANGUP
──────────────────────────────────────────────────────────────────────────
SYNTAXE: HangUp;
DESCRIPTION:
Procédure qui ferme la ligne pendant quelques 1/1000 de seconde.
Cette procédure utilise le "D.T.R." pour raccrocher. Une autre
possibilité est d'envoyer "+++" au modem et d'attendre quelques
1/1000 secondes et d'envoyer 'ATH'+#13.
PARAMETRES:
Auncun;
EXEMPLE:
Begin
If Not OpenCom(1,FOssil) Then; { Ouverture du COM1 }
{...} { Quelque chose... }
HangUp; { Fermeture de la ligne }
CloseAllComs; { Fermetue du port. }
End.
FUNCTION CHECKCD
──────────────────────────────────────────────────────────────────────────
SYNTAXE: CheckCD(ComPort:Byte): Boolean;
DESCRIPTION:
Fonction qui vérifie le statu du "carrier detect" d'un
modem, sur une certaine sortie série. Si le "carrier detect"
est actif, alors la fonction retourne "TRUE" dans le cas
contraire, le retour est "FALSE".
PARAMETRES:
ComPort; le numéro de la sortie série à vérifier.
EXEMPLE:
Const Esc = 27;
Var Ch:Char;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
Repeat { Répétition }
Ch:=ReadKey; { Entré d'un caractère }
Write(Ch); { Ecriture }
If Not CheckCD(1) Then { Vérification du CD }
Write('Ligne coupe...'); { Le CD est off }
Until Ch=Esc; { tant que <> ESC }
End.
PROCEDURE SETDTR
──────────────────────────────────────────────────────────────────────────
SYNTAXE: SetDTR(ComPort:Byte; S:Boolean);
DESCRIPTION:
Procédure qui sert à déterminer le statu du "D.T.R." sur
le modem d'une certaine sortie série. Si S = "TRUE" alors,
le "D.T.R." sera "High" sur le COM, si S = "FALSE" alors
le "D.T.R." sera "Low" sur le COM.
PARAMETRES:
ComPort; le numéro de la sortie série à changer.
S; Spécifit si le DTR doit etre "Low" ou "High".
EXEMPLE:
Uses Crt;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouverture du COM }
SetDTR(1,TRUE); { DTR (COM1) "High" }
Delay(50); { Pause de 50/1000s }
SetDTR(1,FALSE); { DTR (COM1) "Low" }
End.
PROCEDURE PURGEINPUT
──────────────────────────────────────────────────────────────────────────
SYNTAXE: PurgeInput(ComPort:Byte);
DESCRIPTION:
Procédure qui détruit tous les caractères qui sont
présentement dans le "buffer" d'entrée, soit les caractères
qui sont reçus.
PARAMETRES:
ComPort; le numéro de la sortie série à purger.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouverture du COM }
PurgeInput(1); { Purge "INPUT" (COM1) }
End.
PROCEDURE PURGEOUTPUT
──────────────────────────────────────────────────────────────────────────
SYNTAXE: PurgeOutput(ComPort:Byte);
DESCRIPTION:
Procédure qui détruit tous les caractères qui sont
présentement dans le "buffer" de sortie, soit les caractères
qui sont à envoyer.
PARAMETRES:
ComPort; le numéro de la sortie série à purger.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouverture du COM }
PurgeOutput(1); { Purge "OUTPUT" (COM1) }
End.
PROCEDURE FLUSHOUTPUT
──────────────────────────────────────────────────────────────────────────
SYNTAXE: FlushOutPut(ComPort:Byte);
DESCRIPTION:
Procedure qui s'assure que tous les caractères contenu
dans le "buffer" de sortie, soient envoyés avant de
revenir.
PARAMETRES:
ComPort; le numéro de la sortie série a "flusher".
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouverture du COM }
FlushOutput(1); { Flush "OUTPUT" (COM1) }
End.
FUNCTION READCH
──────────────────────────────────────────────────────────────────────────
SYNTAXE: ReadCh(ComPort:Byte): Char;
DESCRIPTION:
Fonction qui regarde si un caractère est disponible sur
une certaine sortie série. Si un caractère est présent,
retourne celui─ci dans la valeur de la fonction. Si
aucun caractère est disponible retourne #0.
PARAMETRES:
ComPort; le numéro de la sortie série où il faut
tenter de récupérer un caractère.
EXEMPLE:
Var Ch:Char;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouverture du COM1 }
Repeat { Répétition }
Ch:=ReadCh(1); { Scan le COM1 }
Until Ch <> #0; { Si un caractère est }
End. { reçu alors exit... }
FUNCTION READCHW
──────────────────────────────────────────────────────────────────────────
SYNTAXE: ReadChW(ComPort:Byte): Char;
DESCRIPTION:
Fonction qui regarde si un caractère est disponible sur
une certaine sortie série. Si un caractère est présent,
retourne celui─ci dans la valeur de la fonction. Si
aucun caractère est disponible alors attend qu'un
caractère se présente et retourne celui─ci dans la valeur
de la fonction.
PARAMETRES:
ComPort; le numéro de la sortie série où il faut
récupérer un caractère.
EXEMPLE:
Var Ch:Char;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouverture du COM1 }
Ch:=ReadChW(1); { "Scan" le COM1 }
End.
FUNCTION MULTIRECVCH
──────────────────────────────────────────────────────────────────────────
SYNTAXE: MultiRecvCh(var ComPorts: Byte): Char;
DESCRIPTION:
Fonction qui retourne un caractère. Cette procédure cherche
un caractère dans les sorties séries qui sont spécifiées
dans le paramètre ComPorts. Si après avoir vérifié toutes
les sorties spécifiées dans Comports, si aucun caractère n'a
il est dans la valeur de la fonction et la variable
Comports contient le numéro de la sortie série où le
caractère a été récupéré.
PARAMETRES:
ComPorts; Contient les sorties séries à vérifier.
7 6 5 4 3 2 1 0 (Bits)
│ │ │ │ │ │ │ └> COM1
│ │ │ │ │ │ └──> COM2
│ │ │ │ │ └────> COM3
│ │ │ │ └──────> COM4
│ │ │ └────────> COM5
│ │ └──────────> COM6
│ └────────────> COM7
└──────────────> COM8
EXEMPLE:
Var ComPorts:Byte;
Ch:Char;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
If Not OpenCom(3,Fossil) Then Halt; { Ouvre le COM3 }
ComPorts:=1+4; { Com1+Com3 }
Repeat
Ch:=MultiRecvCh(ComPorts); { "Scan" COM1 et COM3 }
Until Ch <> #0; { Tant que <> #0 }
WriteLn('Le caractere ',ch,' vient de la sortie',
'serie ',ComPorts);
End.
FUNCTION MULTIRECVCHW
──────────────────────────────────────────────────────────────────────────
SYNTAXE: MultiRecvChW(var ComPorts: Byte): Char;
DESCRIPTION:
Fonction qui retourne un caractère. Cette procédure prend
un caractère dans la première sortie série spécifiées
qui indique un caractère disponible. Si toutes les sorties
séries non pas de caractère en attente, alors la procédure
attend qu'un caractère se présente. A la sortie, le paramètre
ComPorts contient le numéro de la sortie où le caractère a
été obtenu.
PARAMETRES:
ComPorts; Contient les sorties séries à vérifier.
7 6 5 4 3 2 1 0 (Bits)
│ │ │ │ │ │ │ └> COM1
│ │ │ │ │ │ └──> COM2
│ │ │ │ │ └────> COM3
│ │ │ │ └──────> COM4
│ │ │ └────────> COM5
│ │ └──────────> COM6
│ └────────────> COM7
└──────────────> COM8
EXEMPLE:
Var ComPorts:Byte;
Ch:Char;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
If Not OpenCom(3,Fossil) Then Halt; { Ouvre le COM3 }
ComPorts:=1+4; { Com1+Com3 }
Ch:=MultiRecvChW(ComPorts); { "Scan" COM1 et COM3 }
End.
FUNCTION READBLOCK
──────────────────────────────────────────────────────────────────────────
SYNTAXE: ReadBlock(ComPort:Byte; BufPtr: Pointer;
MaxRead:Word): Word;
DESCRIPTION:
Fonction qui fait la lecture du "buffer" d'entrée d'une sortie série et transfert du "buffer" de communication au "buffer"
déclaré par l'usagé, les données. Le nombre total de caractères
transférés se trouve dans la valeur de la fonction.
PARAMETRES:
ComPort; le numéro de la sortie série d'où on lit les
données.
BufPtr; l'adresse du "buffer" où il faut envoyer les données
lues dans le "buffer" de la sortie série spécifiée.
MaxRead; le nombre maximum de caractères à lire. Normalement
la grosseur de votre "buffer".
EXEMPLE:
Var BytesRead:Word;
Buf : Array[1..10] of Char;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre COM1 }
BytesRead:=ReadBlock(1,Addr(Buf[1]),Size(Buf)); { Lecture }
End.
FUNCTION WRITECH
──────────────────────────────────────────────────────────────────────────
SYNTAXE: WriteCh(ComPort:Byte; Ch:Char): Boolean;
DESCRIPTION:
Fonction qui envoi un caractère dans une certaine sortie
série. Si le caractère est accepté, alors retourne
"TRUE", si le caractère n'est pas accepté, ex: si le "buffer"
est plein, retourne "FALSE".
PARAMETRES:
ComPort; Le numéro de la sortie série dans laquelle on
doit envoyer un caractère.
Ch; Le caractère qu'il faut envoyer dans la sortie
série.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
If Not WriteCh(1,'!') Then { "Send" caractère } Write('Le "buffer" est plein.');
End.
PROCEDURE WRITECHW
──────────────────────────────────────────────────────────────────────────
SYNTAXE: WriteChW(ComPort:Byte; Ch:Char);
DESCRIPTION:
Procédure qui envoi un certain caractère dans une certaine
sortie série. Si il n'y a pas de place dans le "buffer" de
sortie, alors la procédure attend qu'il y est de l'espace
et envoi le caractère avant de revenir.
PARAMETRES:
ComPort; Le numéro de la sortie série dans laquelle on
doit envoyer un caractère.
Ch; Le caractère qu'il faut envoyer dans la sortie
série.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
WriteChW(1,'!') { Envoi le caractère }
End.
PROCEDURE WRITESTRW
──────────────────────────────────────────────────────────────────────────
SYNTAXE: WriteStrW(ComPort:Byte; S:String);
DESCRIPTION:
Procédure qui envoi une certaine chaîne de caractère dans
une certaine sortie série. S'il n'y a pas de place dans le
"buffer" de sortie, alors la procédure attend qu'il y est de
l'espace avant de revenir.
PARAMETRES:
ComPort; Le numéro de la sortie série dans laquelle il faut
envoyer la chaîne de caractères.
S; Une chaîne de caractère quelconque.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
WriteStrW(1,'Allo!!!') { Envoit la chaîne }
End.
PROCEDURE WRITESTRLNW
──────────────────────────────────────────────────────────────────────────
SYNTAXE: WriteStrLnW(ComPort:Byte; S:String);
DESCRIPTION:
Procédure qui envoi une certaine chaîne de caractère plus
les codes "LineFeed" et "Cariage Return" dans une certaine sortie
série. S'il n'y a pas de place dans le "buffer" de sortie,
alors la procédure attend qu'il y est de l'espace avant
de revenir.
PARAMETRES:
ComPort; Le numéro de la sortie série dans laquelle il
faut envoyer la chaîne de caractère.
S; Une chaîne de caractère quelconque.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
WriteStrLnW(1,'Allo!!!') { Envoit la chaîne }
End.
PROCEDURE WRITESTRDELAY
──────────────────────────────────────────────────────────────────────────
SYNTAXE: WriteStrDelay(ComPort:Byte; S:String; x: Word);
DESCRIPTION:
Procédure qui envoi une certaine chaîne de caractère
dans une certaine sortie série. En faisant une pause de
x 1/1000sec entre chaque caractère. S'il n'y a pas de place
dans le "buffer" de sortie, alors la procédure attend qu'il y
est de l'espace avant de revenir.
PARAMETRES:
ComPort; Le numéro de la sortie série dans laquelle il
faut envoyer la chaîne de caractère.
S; Une chaîne de caractère quelconque.
X; Le nombre de 1/1000sec entre chaque envoi d'un
caractère.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
WriteStrDelay(1,'Allo!!!',55) { Envoit la chaîne }
End.
PROCEDURE WRITESTRLNDELAY
──────────────────────────────────────────────────────────────────────────
SYNTAXE: WriteStrLnDelay(ComPort: Byte; S:String; x: Word);
DESCRIPTION:
Procédure qui envoi une certaine chaîne de caractère
dans une certaine sortie série plus les codes "LineFeed" et
"Cariage Return". En faisant une pause de x 1/1000sec entre
chaque caractère. S'il n'y a pas de place dans le "buffer" de
sortie, alors la procédure attend qu'il y est de l'espace avant
de revenir.
PARAMETRES:
ComPort; Le numéro de la sortie série dans laquelle il
faut envoyer la chaîne de caractère.
S; Une chaîne de caractère quelconque.
X; Le nombre de 1/1000sec entre chaque envoi d'un
caractère.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
WriteStrLnDelay(1,'Allo!!!',55) { Envoit la chaîne }
End.
FUNCTION WRITEBLOCK
──────────────────────────────────────────────────────────────────────────
SYNTAXE: WriteBlock(ComPort:Byte; BufPtr:Pointer;
MaxSend:Word): Word;
DESCRIPTION:
Fonction qui transfert un "buffer" déclaré par l'usagé,
dans le "buffer" de sortie d'une certaine sortie série.
La valeur retournée par la fonction, est la quantité
en "bytes" de caractères qui ont été acceptés.
PARAMETRES:
ComPort; Le numéro de la sortie série dans laquelle il faut
envoyer un certain buffer.
BufPtr; L'adresse du "buffer" à transmettre.
MaxSend; Le nombre maximum de caractères à transmettre,
generalement, c'est la grosseur du "buffer" de l'usagé.
EXEMPLE:
Const Buf:Array[1..5] of Char = ('1','2','3','4','5');
x:Word;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
x:=WriteBlock(1,Addr(Buf[1]),SizeOf(Buf)); { Envoit le }
{ Buffer. }
{ x = le nombre de caractères transmit. }
End.
PROCEDURE MULTISENDCHW
──────────────────────────────────────────────────────────────────────────
SYNTAXE: MultiSendChW(ComPorts: Byte; ch:Char);
DESCRIPTION:
Procédure qui envoi un caractère dans plusieurs sorties
séries spécifiées par le paramètre ComPorts. Si un "buffer"
de sortie d'un des COM est plein, alors la procédure attend
qu'il y est de l'espace et envoi le caractère avant de revenir.
PARAMETRES:
ComPorts; Contient les sorties séries à "scanner".
7 6 5 4 3 2 1 0 (Bits)
│ │ │ │ │ │ │ └> COM1
│ │ │ │ │ │ └──> COM2
│ │ │ │ │ └────> COM3
│ │ │ │ └──────> COM4
│ │ │ └────────> COM5
│ │ └──────────> COM6
│ └────────────> COM7
└──────────────> COM8
Ch; Contient le caractère à envoyer dans les sorties
séries indiquées.
EXEMPLE:
Var ComPorts:Byte;
Ch:Char;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
If Not OpenCom(3,Fossil) Then Halt; { Ouvre le COM3 }
ComPorts:=1+4; { Com1+Com3 }
Ch:=#27;
MultiSendChW(ComPorts,Ch); { Envoit dans le COM1 et COM3 }
End.
FUNCTION MULTISENDCH
──────────────────────────────────────────────────────────────────────────
SYNTAXE: MultiSendCh(ComPorts: Byte; ch:Char): Byte;
DESCRIPTION:
Fonction qui tente d'envoyer un certain caractère, dans
une ou plusieurs sorties séries. Si le "buffer" de sortie
d'un port de communication est plein, alors la fonction
n'envoi pas dans ce port, le caractère. Le résultat de
la fonction est l'indication qui vous dit quels COM ont
accepté le caractère. La définition est la même que
pour le parametre Comports c'est─à─dire que la bit 0 = COM1 et
la bit 1 = COM2, etc.
PARAMETRES:
ComPorts; Contient les sorties séries à vérifier.
7 6 5 4 3 2 1 0 (Bits)
│ │ │ │ │ │ │ └> COM1
│ │ │ │ │ │ └──> COM2
│ │ │ │ │ └────> COM3
│ │ │ │ └──────> COM4
│ │ │ └────────> COM5
│ │ └──────────> COM6
│ └────────────> COM7
└──────────────> COM8
Ch; Contient le caractère à envoyer dans les sorties
séries indiquées.
EXEMPLE:
Var ComPorts:Byte;
Ch:Char;
Accept:Byte;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
If Not OpenCom(3,Fossil) Then Halt; { Ouvre le COM3 }
ComPorts:=1+4; { Com1+Com3 }
Ch:=#27;
Accept:=MultiSendCh(ComPorts,Ch); { Envoit dans le COM1
et COM3 }
End.
PROCEDURE SETHANDSHAKE
──────────────────────────────────────────────────────────────────────────
SYNTAXE: SetHandShake(ComPort:Byte; Hard, Soft: Boolean);
DESCRIPTION:
Procédure qui change le mode de vérification des
transferts. Si Hard est "TRUE", alors le mode RTS/CTS
est actif, alors qu'il est désactivé si Hard est "FALSE".
C'est la même chose pour Soft, sauf que Soft représente
le mode Xon/Xoff.
PARAMETRES:
ComPort; Le numéro de la sortie série à modifier.
Hard; Le status du mode RTS/CTS.
Soft; Le Status du mode Xon/Xoff.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
SetHandShake(1,TRUE,TRUE); { COM1 <─RTS/CTS on }
{ Xon/Xoff on }
End.
PROCEDURE SETPARAMS
──────────────────────────────────────────────────────────────────────────
SYNTAXE: SetParams(ComPort:Byte; Baud:LongInt; WordSize:Byte;
Parity:Char; StopBits:Byte);
DESCRIPTION:
Modifie les paramètres de communication d'une certaine
sortie série.
PARAMETRES:
ComPort; Le numéro de la sortie série a modifier.
Baud; La vitesse de transmition
Si : Port ─> (300─115200) : Fossil ─> (300─38400)
WordSize; La grosseur des transmition, 5,6,7 ou 8 Bits.
Parity; Le type de parity soit 'N' ─> None,
'O' ─> Odd,
'E' ─> Even.
EXEMPLE:
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
SetParams(1,2400,8,'N',1); { Change le COM1 }
End.
PROCEDURE SETCOMHARDWARE
──────────────────────────────────────────────────────────────────────────
SYNTAXE: SetComHardWare(ComPort:Byte; ComAddr, ComIntr: Word);
DESCRIPTION:
Change l'adresse de la sortie série ou le numéro de
"l'interrupt" utilise. Cette procédure n'a d'éffet que
sur les sorties séries ouvertes avec la manière PORTS,
elle ne fait absolument rien aux sorties ouvertes avec un
"fossil".
PARAMETRES:
ComPort; Le numéro de la sortie série à modifier.
ComAddr; L'adresse hardware de la sortie série.
ComIntr; L'interrupt à utiliser pour communiquer.
EXEMPLE:
{ Le standart pour COM1 = ADDR :$3F8 et INTR 4 }
Begin
If Not OpenCom(1,Ports) Then Halt; { Ouvre le COM1 }
SetComHardWare(1,$3F8,5); { Change le COM1 }
End.
FUNCTION GETFOSSILNAME
──────────────────────────────────────────────────────────────────────────
SYNTAXE: GetFossilName (ComPort:Byte; var ID: String): Boolean;
DESCRIPTION:
Fonction qui retourne le nom du "fossil" qui est utilisé.
Si aucun "fossil" n'est détecté, alors la fonction retourne
"FALSE".
PARAMETRES:
ComPort; Le numéro de la sortie série à vérifier.
ID; La variable qui contiendra le nom du fossil,
contient une valeur indeterminée si la function
retourne "FALSE".
EXEMPLE:
Var Nom:String;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
GetFossilName(1,Nom); { Récupère le nom. }
End.
FUNCTION GETSTATUS
──────────────────────────────────────────────────────────────────────────
SYNTAXE: GetStatus(ComPort:Byte): Word;
DESCRIPTION:
Fonction qui retourne le statu d'une certaine sortie
série. A noter que le type d'information est différent
selon que vous avez ouvert la sortie série avec
la manière Ports ou Fossil.
Si le comport à été ouvert avec le FOSSIL:
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 (Bits)
│ │ │ │ │
│ │ │ │ └───────────────> "Carrier Detect".
│ │ │ └─────────────────> caractère disponible.
│ │ └───────────────────> "buffer" d'entré trop plein.
│ │
│ │
│ └──────────────────────────────> "buffer" de sortie non plein.
└─────────────────────────────────> "buffer" de sortie VIDE.
Si le comport à été ouvert avec les PORTS:
7 6 5 4 3 2 1 0 (Bits)
│ │ │ │ │ │ │ └──> "buffer" d'entre vide.
│ │ │ │ │ │ └────> "buffer" d'entre plein.
│ │ │ │ │ └──────> "buffer" de sortie vide.
│ │ │ │ └────────> "buffer" de sortie plein.
│ │ │ └──────────> "buffer" d'entrée trop plein.
│ │ └────────────> "buffer" de sortie trop plein.
│ └──────────────> Status du mode RTS/CTS.
└────────────────> Status du mode Xon/Xoff.
PARAMETRES:
ComPort; Le numéro de la sortie série à vérifier.
EXEMPLE:
Var Info:Word;
Begin
If Not OpenCom(1,Fossil) Then Halt; { Ouvre le COM1 }
Info:=GetStatus(1); { Récupère le status }
If Info and 256 = 256 Then; { caractère disponible ? }
End.
ENRIGISTREMENT DE MGCOM_TP v0.9
───────────────────────────────
Nom de famille : ______________________________
Prénom : ______________________________
Adresse : ____________________________________________
Ville : ________________________
Province/État : ____________________
Pays : _________________
Code Postal/ZIP : _________________
Date : _________________
Ou avez─vous eu MgCom ? _______________________________________________
***********************************************************************
Un paiement de 25$CAN ou 20$US doit être fait au nom de Mark Gauthier,
par chèque ou mandat poste, si vous envoyez de l'argent vous prenez le
risque qu'il ne se rende pas...
***********************************************************************
Commentaires / Sugestions.
: ___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
MgCom / Mark Gauthier
58 Emilien─Frenette, Sainte─Thérèse
PQ, Canada
J7E 5K3